# 代码参考Week-03教学文档
# 作业完成人脸相似度的测试，在api文档detect的下一项

import requests
import json

subscription_key = "5e123cd0b7e04f9289a01350df3027f9" #填入秘钥
assert subscription_key

face_api_url = 'https://apifacetest.cognitiveservices.azure.cn/face/v1.0/detect' #face后面的/v1.0/detect是固定的

image_url = 'http://newmedia.nfu.edu.cn/wcy/wp-content/uploads/2018/04/post_20180424__NFU_DoraHacks_imoji%E5%9B%A2%E9%98%9F.jpg' 

headers = {'Ocp-Apim-Subscription-Key': subscription_key}

params = {
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise',
}

response = requests.post(face_api_url, params=params,
                         headers=headers, json={"url": image_url})
# json.dumps 将json--->bytes
json.dumps(response.json()) # response.content/ response.text/ response.json() 三种请求方法，前两种以字符串的方式呈现，不好处理。json列表以逗号隔开

# 返回faceID对应请求的信息

# 将信息转换为json格式（转义）
results = response.json()
results

# 用pandas将数据表格化
import pandas as pd
df_face = pd.json_normalize(results)
df_face

# 数据取值
faceID = df_face['faceId'].values.tolist()
faceID 

# 检查属性/特征值
df_face.columns

# 可观察其中几组数据
df_face[['faceId','faceAttributes.glasses','faceAttributes.emotion.neutral','faceAttributes.age','faceAttributes.gender']]